Contents
Classification: Logistic Regression (L6)
另一種方法。
Step 1 : Function Set
如果我們現在要求的 posterior probability 就是將 $z = w\cdot x + b$ 代進 sigmoid function 的結果。
我們的 function set 就是由不同 $w,b$ 的 function 所組成。
用圖形來表示:
而這樣的作法叫做 Logistic Regression。
比較一下最開始講的 Linear Regression。
Logistic Regression 會通過 sigmoid function 所以 output 會介於 0 ~ 1。
Linear Regression 則可能是任何值。
Step 2 : Goodness of a Function
給定 $w,b$ 後,我們就能求出產生這樣一筆 training data 的機率為何,
也就是圖中的 $L(w,b)$ ,likelihood function。
而其中最好的 $w,b$ 就是能使 $L(w,b)$ 最大化 的。
為了方便計算我們可以把它轉換成找 $-lnL(w,b)$ 的 最小值。
而與 linear 在 loss function 上是 不一樣 的,
logistic 需要使用 cross entropy ,而 linear 的則是之前就看過的 square error。
cross entropy v.s square error
(數學推導部分就不貼了)
假設中間就是我們的目標(function),其 loss 值很小。
用 square error ,如果產生出的結果離目標很近,它微分的值自然 很小,
然而在離目標很遠的時候,它微分的值仍然 很小,導致非常平坦,在 update 時會很卡(步伐小)。
我們也不能隨意更改 learning rate 因為在離目標很近,我們需要較小的步伐。
如果用 cross entropy ,距離目標越遠,微分值則越大,在 update 參數時速度越快(步伐越大)。
Step 3 : Find the best function
接下來要做的就是要找一個最好的 function ,也就是要去最小化我們的 $-lnL(w,b)$。
利用 gradient descent(對 $-lnL(w,b)$ 做偏微分然後 update $w_i$ ):
省略中間的過程,最後一項中間(紫線),它代表著我們 $f$ 產生出來的結果和理想的差距有多大,差越多我們 update 的量就會越大。
在 linear regression 上,兩者的 update 算式是 一樣 的,
差別在於 $\hat{y}^n$,logistic 的會是 0 或 1 ,而 linear 的會是任意實數。
還有 $f$ 的輸出,logistic 的會是 0~1 ,而 linear 的會是任意實數。
Discriminative v.s. Generative
上一章節(L5)所講的是利用常態分布(Gaussian distribution) 來描述 Posterior Probability 的方法,稱為 Generative model 。(covariance matrix 設成是共用的)
如果是 Logistic Regression 的話,我們稱之為 Discriminative model。
如果是 Logistic Regression ,我們可以直接去把 $w,b$ 找出來(gradient descent)。
如果是 Generative model 則是先算出那些參數,再代進去求 $w,b$ 。
它們的 function set 和 training data 是一樣的,但因為我們做了不同的假設,所以最後找出來的參數( $w,b$ )會是不一樣的。
(我們在 Logistic Regression 沒有對機率分布做其他假設)
而哪一個產生的結果會比較好呢?用一個簡單的例子來看。
每一個 class 都有兩個 feature,當都是 1 的時候就是 class 1 ,另外三種是 class 2。
我們利用 Naive Bayes 來看看, 當 testing data 的兩個 feature 都是 1 時,屬於哪個 class 的機率比較高?
我們假設所有 feature 是獨立的,那 x 從 $C_i$ 產生出來的機率,就會等於其各個 feature 從 $C_i$ 產生出來的機率。
算出來各項後,我們就可以來算 x 屬於 class 1 的條件機率了。($<0.5$)
結果跟我們預想的不太一樣,對 naive bayes 來說它覺得這筆資料應該屬於 class 2 ,這是因為 naive bayes 自行腦補了 class 2 裡有這樣一筆資料(ㄏㄏ…)。
同樣的在 Generative 裡我們也自行假設了一些狀況,通常腦補會帶來比較差的效果。
何時 Generative 會比較好呢?
因為 discriminative 受資料量的影響比較大。所以在資料量較少時,generative 可能會效果比較好,因為它可能會遵從自己的假設,而無視資料。
資料本身有雜訊,而此時自行的假設可能會帶來較好的結果。
…
Limitation of Logistic Regression
有時會有無法學習的情形,像是圖中的例子就做不到,我們找不到一條線來分紅和藍的點。
(在 Deep and Structured L2 有)
此時我們就可以利用串接 Logistic Regression ,前半部分是在做 Feature Transformation ,我們可以得到另外一組 feature,後半部分則是 classification 。
(圖中座標有誤)
此時就可以做到從中分一條線了。
而這樣子把 Logistic Regression 接在一起,
每一個 Logistic Regression 叫做一個 Neuron,很多個 Neuron 串起來就叫 Neural Network 。
這樣子的東西就叫做 Deep Learning。